Visualisation - EVE Metrics

How it works

To perform visualization, the Event Engine needs influxDB and grafana (tested on influxDB 1.1.1 and grafana 4.0.2 versions) or Power BI. Metrics are passed to influxDB by EVE_Core application, and then they are visualized by grafana. All requests processed by EVE_Core in specified time are passed to Metric Processor, that counts statistics and saves them in influxDB database. EVE_Core passes a JSON request, JSON response, clientId and request type to the Metric Processor. In grafana, influx is defined as DataSource, from which metrics are downloaded. EVE_Core do not connect with grafana.

Configuration

Influx parameters are defined in EVE_Core config file, as well as other parameters for metrics.

List of parameters:

  • metrics_destination - INFLUX_DB if statistics will be sent to influx, POWER_BI if statistics will be sent to Power BI, NONE if statistics will not be counted
  • influx_db_url - url address of influx, for example: http://127.0.0.1:8086
  • influx_db_user - user name
  • influx_db_password - user password
  • influx_db_database - database name
  • influx_db_retention_policy - how long the inputs will be stored (see influxDB documentation)
  • custom_request_fields - fields from an incoming event used as grouping in metrics' values aggregation
  • metric_processed_times - defines how often the number of events occured will be counted
  • metric_time_window - defines how often metrics will be sent to influx, defined in seconds
  • aggregate_time_window - used by MeanScoreMetric, counts average value of score in given time window, defined in seconds (can't be less then metric_time_window)
  • max_metric_calculation_threads - maximum number of threads used to count metrics. The number of threads is set by the number of calculated metrics, but can't be bigger then maximum number of threads.
  • event_request_metrics - metrics names for events of EVENT type, available metrics:
    • MeanScoreMetric
    • ProcessedRequestsMetric
    • WinPrcMetric
    • BidPrcMetric
  • profile_request_metrics - metrics names for events of PROFILE type

Available metrics

Processed Requests Metric

This metric presents the number of processed requests in specified time window (defined as metric_time_window parameter), including the number of incorrect requests and scored request. Statistics are aggregated per clientId and fields defined in custom_request_fields.

Fields in JSON send to grafana (influx name: processed_requests, all fields are numeric):

  • processed
  • processed_time_[number from config]
  • scored
  • errors
  • min_time
  • max_time
  • mean_time
  • sum_time

Processed Requests Metric

Mean Score Metric

This metric presents mean score for every clientId and modelId and fields defined in custom_request_fields.Time window is defined in aggregate_time_window, with shift defined in metric_time_window parameter.

In programmatic, a suggested bidding price is returned instead of score.

Fields in JSON send to grafana (influx name: score, all fields except of modelId are numeric):

  • min_score
  • max_score
  • mean_score
  • sum_score
  • scores_count
  • modelId (text)

Mean Score Metric

WinPrcMetric*

WinPrcMetric - price paid for a won view

Fields in JSON send to grafana (influx name: win_prc, all fields are numeric):

  • min_win_prc
  • max_win_prc
  • mean_win_prc
  • sum_win_prc
  • count_win_prc

BidPrcMetric*

BidPrcMetric - bidded price (from bid response)

Fields in JSON send to grafana (influx name: bid_prc, all fields are numeric):

  • min_bid_prc
  • max_bid_prc
  • mean_bid_prc
  • sum_bid_prc
  • count_bid_prc

*(Metrics only used in programmatic)